package cn.iocoder.yudao.module.wine.controller.admin.supplyinfo.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT;

@Schema(description = "管理后台 - 供求信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class SupplyInfoRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "569")
    @ExcelProperty("主键ID")
    private Long id;

    @Schema(description = "用户id", example = "9953")
    @ExcelProperty("用户id")
    private Long userId;

    @Schema(description = "发布类型：1--出售，2--求购", example = "1")
    @ExcelProperty("发布类型：1--出售，2--求购")
    private Integer infoType;

    @Schema(description = "信息类型: Info_Type表主键ID", example = "31177")
    @ExcelProperty("信息类型: Info_Type表主键ID")
    private Integer supplyTypeId;

    @Schema(description = "信息名称", example = "李四")
    @ExcelProperty("信息名称")
    private String infoName;

    @Schema(description = "简短标题")
    @ExcelProperty("简短标题")
    private String infoTitle;

    @Schema(description = "年份")
    @ExcelProperty("年份")
    private Integer showYear;

    @Schema(description = "年份")
    @ExcelProperty("年份")
    private String showYearName;

    @Schema(description = "香型", example = "1")
    @ExcelProperty("香型")
    private Integer fragranceType;

    @Schema(description = "香型", example = "1")
    @ExcelProperty("香型")
    private String fragranceTypeName;

    @Schema(description = "佣金比例", example = "1")
    @ExcelProperty("佣金比例")
    private Integer ratio;

    @Schema(description = "度数")
    @ExcelProperty("度数")
    private Integer degree;

    @Schema(description = "度数")
    @ExcelProperty("度数")
    private String degreeName;

    @Schema(description = "容量")
    @ExcelProperty("容量")
    private Integer capacity;

    @Schema(description = "容量")
    @ExcelProperty("容量")
    private String capacityName;

    @Schema(description = "包装")
    @ExcelProperty("包装")
    private Integer packing;

    @Schema(description = "包装")
    @ExcelProperty("包装")
    private String packingName;

    @Schema(description = "产地")
    @ExcelProperty("产地")
    private Integer productArea;


    @Schema(description = "产地名称")
    @ExcelProperty("产地名称")
    private String productAreaName;

    @Schema(description = "语言")
    @ExcelProperty("语言")
    private Integer language;

    @Schema(description = "语言名称")
    @ExcelProperty("语言名称")
    private String languageName;

    @Schema(description = "区域id")
    @ExcelProperty("区域id")
    private Integer areaId;

    @Schema(description = "区域名称")
    @ExcelProperty("区域名称")
    private String areaName;

    @Schema(description = "多少瓶")
    @ExcelProperty("多少瓶")
    private Integer quantity;

    @Schema(description = "多少件")
    @ExcelProperty("多少件")
    private Integer packages;

    @Schema(description = "标签:多个“，”隔开:包损、到付等")
    @ExcelProperty("标签:多个“，”隔开:包损、到付等")
    private String labels;

    @Schema(description = "特殊标签")
    @ExcelProperty("特殊标签")
    private String tags;

    @Schema(description = "单图")
    @ExcelProperty("单图")
    private String image;

    @Schema(description = "多图")
    @ExcelProperty("多图")
    private String images;

    @Schema(description = "单位：件/箱")
    @ExcelProperty("单位：件/箱")
    private Integer unit;

    @Schema(description = "单位：件/箱")
    @ExcelProperty("单位：件/箱")
    private String unitName;

    @Schema(description = "条款")
    @ExcelProperty("条款")
    private String clause;

    @Schema(description = "市场价格", example = "7309")
    @ExcelProperty("市场价格")
    private BigDecimal marketPrice;

    @Schema(description = "销售价格", example = "12883")
    @ExcelProperty("销售价格")
    private BigDecimal salePrice;

    @Schema(description = "描述", example = "你猜")
    @ExcelProperty("描述")
    private String description;

    @Schema(description = "状态枚举：1--添加，2--已审核，3--未审核，4--下架", example = "2")
    @ExcelProperty("状态枚举：1--添加，2--已审核，3--未审核，4--下架")
    private Integer status;

    @Schema(description = "交易状态：1--正常交易，2--担保交易中", example = "1")
    @ExcelProperty("交易状态：1--正常交易，2--担保交易中")
    private Integer tradeStatus;

    @Schema(description = "是否担责")
    @ExcelProperty("是否担责")
    private Integer isDuty;

    @Schema(description = "真实浏览数量", example = "真实浏览数量")
    @ExcelProperty("真实浏览数量")
    private Integer viewCount;

    @Schema(description = "显示浏览数量", example = "显示浏览数量")
    @ExcelProperty("显示浏览数量")
    private Integer showCount;

    @Schema(description = "排序")
    @ExcelProperty("排序")
    private Integer sort;

    @Schema(description = "是否置顶")
    @ExcelProperty("是否置顶")
    private Integer isTop;

    @Schema(description = "是否热门")
    @ExcelProperty("是否热门")
    private Integer isHot;

    @Schema(description = "是否推荐")
    @ExcelProperty("是否推荐")
    private Integer isRecommend;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private LocalDateTime createTime;

    @Schema(description = "修改时间")
    @ExcelProperty("修改时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
    private LocalDateTime updateTime;

    @Schema(description = "头像")
    @ExcelProperty("头像")
    private String avatar;


    @Schema(description = "用户昵称")
    @ExcelProperty("用户昵称")
    private String nickname;

    /**
     * 商家信用等级，关联business_credit表信用等级level值
     * 入驻商家--1,认证商家--2,商家团长--3,个人团长--4，保证金用户--5
     */
    @Schema(description = "商家信用等级", example = "1")
    private Integer creditId;

    @Schema(description = "信用等级名称", example = "信用等级名称")
    private String creditName;

    @Schema(description = "信用等级图标", example = "1")
    private String icon;

    @Schema(description = "会员类型名称", example = "1")
    private String memberTypeName;

    @Schema(description = "会员类型图标", example = "1")
    private String memberTypeIcon;

    @Schema(description = "是否平台自营 1是2否", example = "是否平台自营")
    private String isSelfSupport;

    @Schema(description = "保证金内容", example = "1.5W")
    private String bondName;

    @Schema(description = "是否收藏", example = "是否收藏 1是 2否")
    private Integer isFavorite;

    @Schema(description = "收藏id")
    private Long favoriteId;

    @Schema(description = "保费比例", example = "保费比例")
    private BigDecimal premiumRatio;

    @Schema(description = "关注状态 0取消关注  1关注", example = "1")
    private Integer subscribeStatus;

    @Schema(description = "是否担保  1是2否", example = "是否担保  1是2否")
    private Integer isGuarantee;

    @Schema(description = "统计标题名称", example = "统计标题名称")
    private String countName;

    @Schema(description = "真实姓名", example = "真实姓名")
    private String name;

    @Schema(description = "简介", example = "简介")
    private String mark;

    @Schema(description = "是否参与统计")
    private Integer isCount;

    @Schema(description = "是否有配置")
    private Integer isConfig;
}
